      	FXVolume    C:\Users\KatachiHome\AppData\Roaming\MAXON\CINEMA 4D R13_05DFD2A0\plugins\DPIT Plants & Effex 2.0\res\help\EN\Effex\fx_api_classes_nodes_fxvolume.html   X       f                                                                                                                                                                                                                                                                                                                                                                                                                              default.tif                  Object Header   Volumes in Effex are signed distance fields (SDF). This means that in each cell of the internal grid
a (signed) distance to the nearest surface position is stored.<br>
Negative distances are always inside of the volume, positive distances outside and 0.0 on the surface
<br></br>           G[code]void		 GetBounds		(vector3d& ref_minimum, vector3d& ref_maximum)   !<b>Returns</b><br>
none
<br></br>
<b>Parameters</b><BR>
<i>vector3d& ref_minimum</i>: <br>
filled with the bottom-front-left corner position of the grid channel bounds.
<br></br>
<i>vector3d& ref_minimum</i>: <br>
filled with the top-back-right corner position of the grid channel bounds.                   @[code]bool 		Inside			(const vector3d& physical_position) const    Checks if a position is inside the volume's bounding box
<br></br>
<b>Returns</b><br>
true if the passed position is inside
<br></br>
<b>Parameters</b><BR>
<i>const vector3d& physical_position</i>: <br>
The physical position to check if it's inside                  Y[code]bool		 InsideVolume	(const vector3d& physical_position, float offset = 0.0f) const   HChecks if a position is inside the volume.
<br></br>
<b>Returns</b><br>
true if the passed position is inside the volume.
<br></br>
<b>Parameters</b><BR>
<i>const vector3d& physical_position</i>: <br>
The physical position to check if it's inside
<br></br>
<i>float offset</i>: <br>
A virtual offset/displacement of the surface                   ![code]void		 UpdateBounds	(void)    Whenever you change data or add data to a volume you should update its bounds afterward.
You should never call this in a multiprocessor context.                   F[code]double		 GetDistance		(const vector3d& physical_position) const    <b>Returns</b><br>
the interpolated distance value in the volume at the given position
<br></br>
<b>Parameters</b><BR>
<i>const vector3d& physical_position</i>: <br>
The physical position to get the distance for                   +[code]double		 GetMaxDistance	(void) const    K<b>Returns</b><br>
the maximum signed distance available inside the volume                   '[code]float		 GetDensity		(void) const    \<b>Returns</b><br>
the density of the volume (only available if the volume is a rigid body)                   '[code]float 		GetInvMass		(void) const    a<b>Returns</b><br>
the inverse mass of the volume (only available if the volume is a rigid body)               	    *[code]vector3d	 GetInvTensor	(void) const    c<b>Returns</b><br>
the inverse tensor of the volume (only available if the volume is a rigid body)               
    &[code]bool		 IsObstacle		(void) const    5<b>Returns</b><br>
true if the volume is an obstacle                   )[code]bool		 IsGridObstacle	(void) const    q<b>Returns</b><br>
true if the volume is a grid obstacle. This is used by the framework and not by rigid bodies.                   ([code]bool		 IsDynamicBody	(void) const    9<b>Returns</b><br>
true if this is a dynamic rigid body.               
    *[code]bool 		IsKinematicBody	(void) const    z<b>Returns</b><br>
true if this is a kinematic body. This means the user has animated (keyframed) the volume source mesh.                   '[code]bool		 IsStaticBody	(void) const    C<b>Returns</b><br>
true if this is a non-moving static rigid body.                   E[code]vector3d	 GetNormal		(const vector3d& physical_position) const   Retrieve a normal of the volume at the given position. This works at any position inside the volume's bounding box
and may either point into the volume (if the position is outside) or out of the volume (if the position is inside)
<br></br>
<b>Returns</b><br>
the normal vector
<br></br>
<b>Parameters</b><BR>
<i>const vector3d& physical_position</i>: <br>
The physical position to get the normal for                   G[code]double 		LinearFalloff	(const vector3d& physical_position) const   Generates a linear falloff value between 0.0 and 1.0. This is only valid inside the volume!
<br></br>
<b>Returns</b><br>
the linear falloff value
<br></br>
<b>Parameters</b><BR>
<i>const vector3d& physical_position</i>: <br>
The physical position to determine the falloff value for.                   [code]bool		 ProjectPoint	(vector3d &global_physical_position, vector3d &result_grid_position, vector3d& result_coll_normal, double projection = 0.001) const   This projects (moves) the given position to  the surface of the volume. This is only valid for positions inside the volume
<br></br>
<b>Returns</b><br>
true if the passed position was inside and was successfully projected.
<br></br>
<b>Parameters</b><BR>
<i>const vector3d& global_physical_position</i>: <br>
The physical position to project
<br></br>
<i>vector3d &result_grid_position</i>: <br>
Filled with the projected position
<br></br>
<i>vector3d &result_grid_position</i>: <br>
Filled with the collision normal
<br></br>
<i>double projection</i>: <br>
A displacement for the projected position. Higher values result in the projected position being displaced further to the outside.                                                             	      
   	      
         
         
                  